/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.teste.manager.sprint;

import br.com.teste.controller.historia.HistoriaVo;
import br.com.teste.controller.sprint.SprintVo;
import br.com.teste.controller.tarefa.TarefaVo;
import br.com.teste.entity.Historia;
import br.com.teste.entity.SituacaoSprint;
import br.com.teste.entity.Sprint;
import br.com.teste.entity.Tarefa;
import br.com.teste.entity.Usuario;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;

/**
 *
 * @author kleber
 */
public class SprintBuilder {
    
    @Autowired
    SprintManager sprintManager;

    public void build(SprintVo vo) {

        Sprint sprint = new Sprint();


        sprint.setDataFinal(vo.getDataFinal());
        sprint.setDataInicial(vo.getDataInicial());
        sprint.setDescricao(vo.getDescricao());
        sprint.setNumero(vo.getNumero());
        sprint.setSituacao(vo.getSituacao());

        List<Historia> historiaList = new ArrayList<Historia>();
        
        for (HistoriaVo historiaVo : vo.getHistoriaVoList()) {
            Historia h = new Historia();
            h.setId(historiaVo.getId());
            h.setDescricao(historiaVo.getDescricao());
            h.setEsforco(historiaVo.getEsforco());
            h.setNumero(historiaVo.getNumero());
           
            List<Tarefa> tarefaList = new ArrayList<Tarefa>();
            for (TarefaVo lista : historiaVo.getListTarefa()) {
                Tarefa tarefa = new Tarefa();
                tarefa.setId(lista.getId());
                tarefa.setNome(lista.getNome());
                tarefa.setDescricao(lista.getDescricao());
                tarefa.setDataInicio(lista.getDataInicio());
                tarefa.setDataFim(lista.getDataFim());
                Usuario usuario = new Usuario();
                usuario.setId(lista.getUsuarioVo().getId());
                usuario.setNome(lista.getUsuarioVo().getNome());
                tarefa.setUsuario(usuario);

                tarefaList.add(tarefa);
            }
            h.setListTarefa(tarefaList);
            historiaList.add(h);
                        
        }
        
        sprint.setHistoriaList(historiaList);
        
        sprintManager.salvar(sprint);
        

    }
}
